Many diseases are caused by somatic mutations. Because somatic mutations only occur in a fraction of the cells in the body, they can be difficult to detect with high sensitivity and specificity by next generation sequencing. One problem is that every library preparation method and sequencing platform results in sequence reads that contain errors, e.g., PCR errors and sequencing errors. While it is sometimes possible to correct systematic errors (e.g., those that are correlated with known parameters including sequencing cycle-number, strand, sequence-context and base substitution probabilities), it is often impossible to figure out with any certainty whether a variation in a sequence is caused by an error or if it is a “real” mutation. This problem is exacerbated in samples in which the sample has low diversity and/or mutation-containing polynucleotides are present only at relatively low levels, e.g., less than 5%, in the sample. For example, if a sample contains only one copy of a mutation-containing polynucleotide in a background of hundreds of polynucleotides that are otherwise identical to the mutation-containing polynucleotide except that they do not contain the mutation, then, after those polynucleotides have been sequenced, it is often impossible to tell whether the variation (which may only be observed in about 1/100 of the sequence reads) is an error that occurred during amplification or sequencing. Thus, the detection of somatic mutations that cause diseases can be extremely difficult to detect with any certainty.